<?php
namespace app\admin\controller;

use think\Db;
use app\common\builder\ZBuilder;

class Table extends Admin
{
	public function index()
	{
		// 从数据库模拟数据
		$table0 = Db::name('admin_table')->select();
		
		// 从数组模拟数据 必须是二维数组
		$table1[] = [
			'id' => 1,
			'username' => '林武',
			'email' => 'linwu@qq.com',
			'status' => '1'
		];



		// 1.快速构建
		/*
		return ZBuilder::make('table')->fetch();
		*/
		 
		// 2.设置页面标题
		/*
		return ZBuilder::make('table')->setPageTitle('测试标题')->fetch();
		*/
		
		// 3.设置页面提示信息
		/*
		return ZBuilder::make('table')->setPageTips('这是页面提示信息', 'info')->fetch();
		*/

		// 4.添加一列
		/*
		return ZBuilder::make('table')
			->addColumn('username', '用户名')
			->fetch();
		*/

		// 4.1字段类型：switch
		/*
		return ZBuilder::make('table')
			->addColumn('username', '用户名')
			->addColumn('email', '邮箱')
			->addColumn('status', '状态', 'switch')
			->setRowList($table0)
			->fetch();
		*/

		// 4.2字段类型：status
		/*
		return ZBuilder::make('table')
			->addColumn('username', '用户名')
			->addColumn('email', '邮箱')
			//->addColumn('status', '状态', 'status') //方式一：默认方式
			->addColumn('status', '状态', 'status', '', ['未审核', '已审核']) //方式二：定义额外参数 方式一与方式二必须二选一（必须注释其中一个） 否则会报错
			->setRowList($table0)
			->fetch();
		*/

		// 4.3字段类型：yesno
		/*
		return ZBuilder::make('table')
			->addColumn('username', '用户名')
			->addColumn('email', '邮箱')
			->addColumn('status', '状态', 'yesno')
			->setRowList($table0)
			->fetch();
		*/
		
		// 4.4字段类型：text.edit
		/*
		return ZBuilder::make('table')
			->addColumn('username', '用户名', 'text.edit')
			->setRowList($table0)
			->fetch();
		*/
	
		// 4.5字段类型：textarea.edit

		// 4.6字段类型：password
		/*
		return ZBuilder::make('table')
			->addColumn('password','密码','password')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.7字段类型：email
		/*
		return ZBuilder::make('table')
			->addColumn('email', '邮箱', 'email')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.8字段类型：url

		// 4.9字段类型：tel

		// 4.10字段类型：number

		// 4.11字段类型：icon
		/*
		return ZBuilder::make('table')
			->addColumn('icon','图标','icon','fa fa-fw fa-star-o')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.12字段类型：byte
		/*
		// 单位会根据字节大小自动换算
		return ZBuilder::make('table')
			->addColumn('byte','字节','byte','没有数据')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.13字段类型：date
		/*
		return ZBuilder::make('table')
			->addColumn('create_time','创建时间','date','没有填写日期','Y/m')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.14字段类型：time

		// 4.15字段类型：datetime
		
		// 4.16字段类型：date.edit (不兼容)
		/*
		return ZBuilder::make('table')
			->addColumn('create_time','创建时间','date.edit','没有填写日期')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.17字段类型：time.edit (不兼容)

		// 4.18字段类型：datetime.edit (不兼容)
		
		// 4.19字段类型：picture
		/*
		return ZBuilder::make('table')
			->addColumn('avatar','头像','picture')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.20字段类型：pictures
		/*
		return ZBuilder::make('table')
			->addColumn('avatar','头像','pictures')
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.21字段类型：select
		/*
		return ZBuilder::make('table')
			->addColumn('sex','性别','select',['女' => '女', '男' => '男'])
			->setRowList($table0)
			->fetch();
		 */
		
		// 4.22字段类型：callback

		// 4.23字段类型：link

		// 4.24字段类型：text
		 
		// 4.25字段类型：img_url

		// 5.添加多列

		// 6.添加数量索引

		// 7.添加快捷编辑的验证器

		
		// 获取排序
		$order = $this->getOrder();
		// 获取筛选
		$map = $this->getMap();
		// 读取用户数据
		$data_list = Db::name('admin_table')->where($map)->order($order)->select();
		        
		// 使用ZBuilder构建数据表格
		return ZBuilder::make('table')
			->addOrder('id,username') // 添加排序
		    ->addFilter('id,username') // 添加筛选
		    ->addColumn('id', 'ID')
		    ->addColumn('username', '用户名')
		    ->addColumn('email', '邮箱')
		    ->addColumn('create_time', '创建时间')
		    ->setRowList($data_list) // 设置表格数据
		    ->fetch();	

















	}
}